#!/bin/bash
###############################################################################
# @用例ID: 20230527-193557-365867829
# @用例名称: make_test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"


tc_setup() {
    msg "this is tc_setup"
    # @预置条件:系统正常运行，且已安装 make
    assert_true yum install -y make

    # @预置条件:
    return 0
}

do_test() {
    msg "this is do_test"

    # 创建一个临时目录
    tmpdir="$(mktemp -d)"

    # 进入临时目录
    cd "$tmpdir"

    # 创建一个包含多个目标和规则的 Makefile
    cat > Makefile << EOF
all: target1 target2

target1:
	@echo "Executing target1"

target2:
	@echo "Executing target2"
EOF

    # @测试步骤:1
    # 使用 make 命令执行目标为 "all" 的规则
    assert_true make all

    # @预期结果:1
    # 确保 Makefile 成功执行，输出 "Executing target1" 和 "Executing target2"

    # @测试步骤:2
    # 使用 make 命令执行目标为 "target1" 的规则
    assert_true make target1

    # @预期结果:2
    # 确保 Makefile 成功执行，输出 "Executing target1"

    # @测试步骤:3
    # 使用 make 命令执行目标为 "target2" 的规则
    assert_true make target2

    # @预期结果:3
    # 确保 Makefile 成功执行，输出 "Executing target2"
    assert_true [ 1 -eq 1 ]

    return 0
}


tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
